(1) Field of the Invention
This invention relates to a stored program controlled data processing system, and more specifically to the data driven type control of such a system.
(2) Description of the Prior Art
The data driven (or data flow) type control method is to control a processing sequence depending upon the flow of data, i.e., depending upon the preparation situation of data that are to be processed, and has hitherto been studied in order to realize a so-called non-Neumann type computer (see "Trend of Data Flow Computers Innovating the Construction of Computers", Part 1, Nikkei Electronics, May 28, 1979, pp. 64-81). The data driven non-Neumann type computer has an architecture which is fundamentally different from a conventional so-called Neumann type computer, i.e. a computer in which a program is sequentially executed in a predetermined single stream (or referred to as the sequential execution type computer in this specification), and is designed in an attempt to increase data processing ability relying upon parallel processing. For operations which do not require such high processing abilities, therefore, the data driven non-Neumann type computer becomes very expensive, and is not always ideal.
On the other hand, the conventional sequential execution type machine has various difficulties not only with respect to the data processing ability but also to the preparation of software. Regarding the latter point, the data driven type control is advantageous since it clarifies correlations of input and output data among various portions of the program and clarifies execution conditions of various portions, making it possible to easily comprehend the whole construction of the program and, accordingly, to easily develop software and to effect debugging and modifications.
When high data processing ability is not required, a compromised proposal is to prepare such a program which operates the conventional sequential execution type machine in the data driven type mode. However, an excess overhead results from the procedure which checks whether the required operands are prepared for the individual operation instructions and which indicates, every time an instruction is executed, the preparation of an operand for every instruction requiring as its operand the data produced by the execution. Therefore, such is not practicable. Further, to transfer the data produced by every instruction to operand address locations of all instructions that require the produced data causes the quantity of memory access to increase and the processing speed to decrease.